package com.mukefile.dao;

import com.mukefile.pojo.Log;
import com.mukefile.pojo.MLog;

import java.util.Date;
import java.util.List;

/**
 * @Author: kenewstar
 * @Description: 日志数据访问层接口
 * @Date: Created in 2020/9/12
 */
public interface LogDao {
    /**
     * 插入一条日志对象
     * @param log 日志对象
     */
    void insertLog(Log log);

    /**
     * 分页查询
     * @param limitStart 分页开始
     * @param limitEnd 每页大小
     * @return 分页后的信息
     */
    List<Log> selectLogByLimit(int limitStart,int limitEnd);

    /**
     * 获取日志表的总记录数
     * @return 返回记录数
     */
    Integer selectCount();

    /**
     *
     * @param id 用户id
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param limitStart 开始分页
     * @param limitEnd 每页大小
     * @return 返回查询结果
     */
    List<Log> selectLogByCondition(Integer id,Date startTime,Date endTime,
                                   int limitStart,int limitEnd);

    /**
     * 根据条件查询日志的数量
     * @param id 用户id
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回记录数
     */
    Integer selectCountByCondition(Integer id,Date startTime,Date endTime);

    /**
     * 根据条件查询管理员日志数量
     * @param mid 管理员id
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回管理员日志记录数
     */
    Integer selectMLogCountByCondition(Integer mid,Date startTime,Date endTime);

    /**
     * 根据条件分页查询管理员日志信息
     * @param mid 管理员id
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param limitStart 开始分页
     * @param limitEnd 每页大小
     * @return 返回分页信息
     */
    List<MLog> selectMLogByCondition(Integer mid,Date startTime,Date endTime,
                                     int limitStart,int limitEnd);


}
